export interface SSHConfig {
  host: string;
  port: number;
  username: string;
  password: string;
  timeout?: number;
}

export interface DeepSeekConfig {
  apiKey: string;
  baseURL?: string;
  model?: string;
  maxTokens?: number;
}

export interface CommandResult {
  success: boolean;
  stdout: string;
  stderr: string;
  exitCode: number;
  command: string;
  timestamp: Date;
}

export interface SSHSession {
  id: string;
  config: SSHConfig;
  connected: boolean;
  lastActivity: Date;
}

export interface DeepSeekResponse {
  id: string;
  content: string;
  commands?: string[];
  reasoning?: string;
}

export interface AutomationTask {
  id: string;
  description: string;
  commands: string[];
  status: 'pending' | 'running' | 'completed' | 'failed';
  results: CommandResult[];
  createdAt: Date;
  completedAt?: Date;
}

export interface SystemConfig {
  ssh: SSHConfig;
  deepseek: DeepSeekConfig;
  logLevel: string;
  sessionTimeout: number;
  maxCommandLength: number;
}